package com.eastfair.venueservice.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.eastfair.boot.request.PageParams;
import com.eastfair.boot.service.SuperService;
import com.eastfair.venueservice.dto.ArrangementManageDTO;
import com.eastfair.venueservice.dto.ExhibitionManageQuery;
import com.eastfair.venueservice.entity.ArrangementManage;
import com.eastfair.venueservice.vo.ArrangementManageVO;
import com.eastfair.venueservice.vo.ExhibitionManageVO;

/**
 * <p>
 * 业务接口
 * 布撤展现场管理
 * </p>
 *
 * @author lyw
 * @date 2022 -08-11
 */
public interface ArrangementManageService extends SuperService<ArrangementManage> {

    /**
     * 通过服务商查询进行中的展会
     *
     * @param exhibitionManageQuery the exhibition manage query
     * @return exhibition manage vo
     */
    ExhibitionManageVO queryExhibitionManageByProvider(ExhibitionManageQuery exhibitionManageQuery);

    /**
     * 主场查询布撤展管理记录.
     *
     * @param params the params
     * @return the page
     */
    Page<ArrangementManageVO> queryForHome(PageParams<ArrangementManageDTO> params);

    /**
     * 主场巡检查询布撤展管理记录.
     *
     * @param params the params
     * @return the page
     */
    Page<ArrangementManageVO> queryForHomeCheck(PageParams<ArrangementManageDTO> params);

    /**
     * 查询布撤展管理列表分页
     *
     * @param params the params
     * @return page page
     */
    Page<ArrangementManageVO> queryArrangementManageList(PageParams<ArrangementManageDTO> params);

    /**
     * 查询布撤展管理详情
     *
     * @param arrangementManageDTO the arrangement manage dto
     * @return arrangement manage vo
     */
    ArrangementManageVO getArrangementManage(ArrangementManageDTO arrangementManageDTO);

    /**
     * 主场巡检提交布撤展管理信息
     *
     * @param arrangementManageDTO the arrangement manage dto
     * @return the boolean
     */
    boolean submitForHomeCheck(ArrangementManageDTO arrangementManageDTO);

    /**
     * 场馆巡检提交布撤展管理记录.
     *
     * @param arrangementManageDTO the arrangement manage dto
     * @return the boolean
     */
    ArrangementManage submitForVenue(ArrangementManageDTO arrangementManageDTO);

    /**
     * 保存布撤展管理记录.
     *
     * @param arrangementManageDTO the arrangement manage dto
     * @return the boolean
     */
    ArrangementManage saveArrangementManage(ArrangementManageDTO arrangementManageDTO);

    /**
     * 主场巡检保存搭建商证件的管理记录.
     *
     * @param arrangementManageDTO the arrangement manage dto
     * @return the boolean
     */
    boolean saveForHomeCheckCertificate(ArrangementManageDTO arrangementManageDTO);

    /**
     * 场馆巡检保存搭建商证件的管理记录.
     *
     * @param arrangementManageDTO the arrangement manage dto
     * @return the boolean
     */
    ArrangementManage saveFoVenueCheckCertificate(ArrangementManageDTO arrangementManageDTO);

    /**
     * 修改布撤展管理信息
     *
     * @param arrangementManageDTO the arrangement manage dto
     * @return boolean boolean
     */
    boolean updateArrangementManage(ArrangementManageDTO arrangementManageDTO);

    /**
     * 更新处罚状态为已处罚.
     *
     * @param id the id
     * @return the boolean
     */
    boolean updateHasPunish(Long id);

    /**
     * 更新处罚状态为未处罚.
     *
     * @param id the id
     * @return the boolean
     */
    boolean updateNotPunish(Long id);

    /**
     * 删除布撤展
     *
     * @param id the id
     * @return boolean boolean
     */
    boolean delArrangementManage(Long id);
}
